home *** CD-ROM | disk | FTP | other *** search
- //---------------------------------------------------------------------------
- #include <vcl\vcl.h>
- #pragma hdrstop
-
- #include "Monster6.h"
- //---------------------------------------------------------------------------
- #pragma resource "*.dfm"
-
- const String Pfad = "c:\\cpp\\buch\\";
-
- class TMonster
- {
- private:
- String Name;
- String Wesen;
- String Bild;
- public:
- virtual void Erscheinen(void);
- virtual String Typ (void) {return "Monster";};
- TMonster (String N, String W, String Datei);
- virtual ~TMonster (void);
- };
-
- class TGMonster : virtual public TMonster
- {
- public:
- virtual String Typ (void) {return "GeistesMonster";};
- TGMonster (String N, String W, String Datei);
- virtual ~TGMonster (void);
- };
-
- class TSMonster : virtual public TMonster
- {
- public:
- virtual String Typ (void) {return "SeelenMonster";};
- TSMonster (String N, String W, String Datei);
- virtual ~TSMonster (void);
- };
-
- class TXMonster : public TGMonster, public TSMonster
- {
- public:
- virtual String Typ (void) {return "PsychoMonster";};
- TXMonster (String N, String W, String Datei);
- virtual ~TXMonster (void);
- };
-
- //---------------------------------------------------------------------------
-
- TMonster *WerWohl;
- bool Modus;
- int Zufall;
- TForm1 *Form1;
-
- //---------------------------------------------------------------------------
- __fastcall TForm1::TForm1(TComponent* Owner)
- : TForm(Owner)
- {
- }
- //---------------------------------------------------------------------------
- // Monster-Konstruktoren
- //---------------------------------------------------------------------------
- TMonster::TMonster (String N, String W, String Datei)
- {
- Name = N; Wesen = W; Bild = Datei;
- }
- //---------------------------------------------------------------------------
- TGMonster::TGMonster (String N, String W, String Datei)
- : TMonster (N, W, Datei)
- {
- }
- //---------------------------------------------------------------------------
- TSMonster::TSMonster (String N, String W, String Datei)
- : TMonster (N, W, Datei)
- {
- }
- //---------------------------------------------------------------------------
- TXMonster::TXMonster (String N, String W, String Datei)
- : TGMonster (N, W, Datei), TSMonster (N, W, Datei), TMonster (N, W, Datei)
- {
- }
- //---------------------------------------------------------------------------
- // Monster-Destruktoren
- //---------------------------------------------------------------------------
- TMonster::~TMonster (void)
- {
- Form1->Label1->Caption = "";
- Form1->Label2->Caption = "";
- Form1->Label3->Caption = "";
- Form1->Image1->Hide();
- ShowMessage ("Tschⁿ▀!");
- }
- //---------------------------------------------------------------------------
- TGMonster::~TGMonster (void)
- {
- // ShowMessage ("Ich denke an Dich!");
- }
- //---------------------------------------------------------------------------
- TSMonster::~TSMonster (void)
- {
- // ShowMessage ("Ich vermisse Dich!");
- }
- //---------------------------------------------------------------------------
- TXMonster::~TXMonster (void)
- {
- // ShowMessage ("Ich verabschiede mich.");
- }
- //---------------------------------------------------------------------------
- void TMonster::Erscheinen (void)
- {
- Form1->Label1->Caption = "Name: " + Name;
- Form1->Label2->Caption = "Wesen: " + Wesen;
- Form1->Label3->Caption = "Typ: " + Typ();
- Form1->Image1->Picture->LoadFromFile (Pfad+Bild);
- Form1->Image1->Show ();
- }
- //---------------------------------------------------------------------------
- void __fastcall TForm1::FormCreate(TObject *Sender)
- {
- randomize ();
- Modus = true;
- }
- //---------------------------------------------------------------------------
- void __fastcall TForm1::Button1Click(TObject *Sender)
- {
- if (Modus)
- {
- Zufall = random(5);
- switch (Zufall)
- {
- case 0:
- WerWohl =
- new TMonster("Frankie", "ungew÷hnlich", "Frank.bmp");
- break;
- case 1:
- WerWohl =
- new TGMonster("Berti", "nachdenklich", "Albert.bmp");
- break;
- case 2:
- WerWohl =
- new TSMonster("Sigi", "mitfⁿhlend", "Sigmund.bmp");
- break;
- case 3:
- WerWohl =
- new TXMonster("Jekyll", "zaghaft", "Jekyll.bmp");
- break;
- case 4:
- WerWohl =
- new TXMonster("Hyde", "launisch", "Hyde.bmp");
- }
- WerWohl->Erscheinen ();
- Button1->Caption = "Verschwinden";
- }
- else
- {
- delete WerWohl;
- Button1->Caption = "Erscheinen";
- }
- Modus = !Modus;
- }
- //---------------------------------------------------------------------------
-